﻿using System;
using System.Linq;

namespace Calendar.Web.Core
{
    public class GeneratePassword
    {
        /// <summary>
        /// Генерирует случайный пароль длиной до 16 символов
        /// </summary>
        /// <param name="length">длина пароля</param>
        /// <returns>случайный набор из символов латинского алфавита и цифр указанной длины</returns>
        public static string Generate(int length)
        {
            if (length < 0 || length > 16) throw new ArgumentException("length must be from 0 to 16");

            var i = Guid.NewGuid().ToByteArray().Aggregate<byte, long>(1, (current, b) => current * ((int)b + 1));
            return string.Format("{0:x}", i - DateTime.Now.Ticks).Substring(0, length);
        }
    }
}